package dto

import "web_api_gin/entity"

//菜单大结构
type SysMenusBig struct {
	entity.SysMenu
	PermName string         `gorm:"perm_name" json:"perm_name"` //菜单关联权限名称
	IsPublic uint32         `gorm:"is_public" json:"is_public"` //菜单关联权限是否公共权限
	Children []*SysMenusBig `gorm:"-" json:"children"`          //子菜单列表
}

//系统菜单首页接收参数
type SysMenuGetListRequest struct {
	Name    string `form:"name"`     // 菜单名称
	GroupId uint32 `form:"group_id"` // 分组ID
}

//菜单删除表单
type SysMenuFormDestroy struct {
	MenuIds []uint32 `form:"menu_ids" json:"menu_ids" binding:"dive,required"` // 菜单ID
}

//排序拖拽请求参数
type SysMenuSetOrderRequest struct {
	DropType     string                  `form:"dropType" binding:"required"`      //拖拽类型
	DraggingNode SysMenuSetOrderDragNode `form:"draggingNode" json:"draggingNode"` //拖拽中的节点
	DropNode     SysMenuSetOrderDragNode `form:"dropNode" json:"dropNode"`         //放置的目标节点
}

// 拖拽数据节点结构
type SysMenuSetOrderDragNode struct {
	MenuId   uint32 `form:"menu_id" json:"menu_id"`     //菜单ID
	MenuName string `form:"menu_name" json:"menu_name"` //菜单名称
	ParentId uint32 `form:"parent_id" json:"parent_id"` //父级ID
	OrderNum uint32 `form:"order_num" json:"order_num"` //排序数字
}
